package com.myway.dto.order;

import com.myway.dto.order.domain.Gender;
import com.myway.dto.order.domain.PassengerType;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @类名称：DTOPassenger 
 * @类描述：旅客 
 * @创建时间：2015年11月11日 下午7:51:08 
 * @author Jiang.Yida
 * @version V1.0
 */
public class DTOPassenger implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 2949422024828378998L;

	/**
	 * Unique ID to identify the passenger
	 */
	private Long id;

	/**
	 * Passenger name
	 */
	private String name;
	
	/**
	 * Other name. If name attribute contains name in chinese, this attribute
	 * will keep pinyin of the chinese characters.
	 */
	private String othername;
	
	/**
	 * Passenger type (e.g Adult, Child, Infant)
	 */
	private PassengerType passengerType;
	
	/** 
	 * Passenger gender
	 */
	private Gender gender;
	
	/**
	 * Birthday
	 */
	private Date birthday;
	
	/**
	 * Identification document number
	 */
	private String certificateNo;
	
	/**
	 * Type of identification document used 
	 * NI=身份证
	 * PP=有效护照
	 * JG=军官证
	 * ID=其它
	 */
	private String certificateType;
	
	/**
	 * Frequent Flyer No
	 */
	private String frequentflyerno;
	
	private DTOPnr pnrValue;

	/**
	 * 以下字段用于国际客票旅客
	 */
	private String firstname;
	private String lastname;
	//国籍
	private String nationality;
	private String passportno;
	private String bornDate;
	
	//证件过期时间
	private String expiredDate;
	private String remark;
	//护照签发国
	private String issueCountry;
	//出发地地址
	private String depCity;
	private String depProvince;
	private String depCountry;
	private String depStreet;
	private String depPost;
	//目的地地址
	private String arrCity;
	private String arrProvince;
	private String arrCountry;
	private String arrPost;
	private String arrStreet;	
	
	
	/**
	 * Passenger who accompany this passenger. 
	 * Usually it will be parent/guardian of this passenger. 
	 */
	private DTOPassenger accompaniedByPassenger;
	
	/**
	 * List of passengers accompanied by this passenger.
	 */
	private List<DTOPassenger> accompanyingPassengerList;
	
	/**
	 * List of flight segments
	 */
	private List<DTOPaxSegment> passengerSegmentList;
	
	private Long changeNameTime;
	private Long changeCertiTime;
	
	//for xcd Print
	//该乘客总票价

	private String ticketMoney = "0";
	//该乘客总机建

	private String airportTaxMoney = "0";
	//该乘客总燃油

	private String fuelTaxMoney = "0";
	//该乘客总合计价
	private String allMoney = "0";
	//该乘客总保险费
	private String insuranceAmount = "0";
	
	//是否已经打印行程单

	private String xcdPrintStatus;
	
	//是否购买保险
	private int isInsure;
	
	//第二类保险购买数量
	private int insurance1;
	
	//第三类保险购买数量
	private int insurance2;
	
	public int getInsurance2() {
		return insurance2;
	}


	public void setInsurance2(int insurance2) {
		this.insurance2 = insurance2;
	}


	private String inuranceNumberAndType;
	
	//是否保存常用乘机人
	private int isSaveCommonPassenger=0;
	
	
	private String mobilePhone;
	
	//是否预订航班短信提醒服务
	private int isFlightSms;

	
	public int getIsFlightSms() {
		return isFlightSms;
	}


	public void setIsFlightSms(int isFlightSms) {
		this.isFlightSms = isFlightSms;
	}


	public int getIsSaveCommonPassenger() {
		return isSaveCommonPassenger;
	}


	public void setIsSaveCommonPassenger(int isSaveCommonPassenger) {
		this.isSaveCommonPassenger = isSaveCommonPassenger;
	}


	public String getMobilePhone() {
		return mobilePhone;
	}


	public void setMobilePhone(String mobilePhone) {
		this.mobilePhone = mobilePhone;
	}


	/**
	 * @return the isInsure
	 */
	public int getIsInsure()
	{
		return isInsure;
	}

	
	/**
	 * @param isInsure the isInsure to set
	 */
	public void setIsInsure(int isInsure)
	{
		this.isInsure = isInsure;
	}

	/**
	 * @return the insurance1
	 */
	public int getInsurance1() {
		return insurance1;
	}


	/**
	 * @param insurance1 the insurance1 to set
	 */
	public void setInsurance1(int insurance1) {
		this.insurance1 = insurance1;
	}


	public Long getChangeNameTime() {
		return changeNameTime;
	}

	public void setChangeNameTime(Long changeNameTime) {
		this.changeNameTime = changeNameTime;
	}

	public Long getChangeCertiTime() {
		return changeCertiTime;
	}

	public void setChangeCertiTime(Long changeCertiTime) {
		this.changeCertiTime = changeCertiTime;
	}

	public DTOPassenger() {}
			
	public DTOPassenger(String name, PassengerType passengerType,
						Gender gender, String certificateNo, String certificateType) {
		super();
		this.name = name;
		this.passengerType = passengerType;
		this.gender = gender;
		this.certificateNo = certificateNo;
		this.certificateType = certificateType;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getName() {	
		
		return this.name;
	}

	public void setName(String name) {
		
		this.name = name;
	}

	public PassengerType getPassengerType() {
		return passengerType;
	}

	public void setPassengerType(PassengerType passengerType) {
		this.passengerType = passengerType;
	}

	public Gender getGender() {
		return gender;
	}

	public void setGender(Gender gender) {
		this.gender = gender;
	}

	public String getCertificateNo() {
		return certificateNo;
	}

	public void setCertificateNo(String certificateNo) {
		this.certificateNo = certificateNo;
	}

	public String getCertificateType() {
		return certificateType;
	}

	public void setCertificateType(String certificateType) {
		this.certificateType = certificateType;
	}

	public List<DTOPassenger> getAccompanyingPassengerList() {
		return accompanyingPassengerList;
	}

	public void setAccompanyingPassengerList(List<DTOPassenger> accompanyingPassengers) {
		this.accompanyingPassengerList = accompanyingPassengers;
	}
	
	public List<DTOPassenger> addAccompanyingPassenger(DTOPassenger accompanyingPassenger) {
		if (accompanyingPassengerList == null) {
			accompanyingPassengerList = new ArrayList<DTOPassenger>();
		}
		accompanyingPassengerList.add(accompanyingPassenger);
		return accompanyingPassengerList;
	}

	public List<DTOPaxSegment> getPassengerSegmentList() {
		return passengerSegmentList;
	}

	public void setPassengerSegmentList(List<DTOPaxSegment> passengerSegmentList) {
		this.passengerSegmentList = passengerSegmentList;
	}

	/**
	 * @return the frequentflyerno
	 */
	public String getFrequentflyerno() {
		return this.frequentflyerno;
	}

	/**
	 * @param frequentflyerno the frequentflyerno to set
	 */
	public void setFrequentflyerno(String frequentflyerno) {
		this.frequentflyerno = frequentflyerno;
	}
	
	public DTOPnr getPnrValue() {
		return pnrValue;
	}

	public void setPnrValue(DTOPnr pnrValue) {
		this.pnrValue = pnrValue;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public DTOPassenger getAccompaniedByPassenger() {
		return accompaniedByPassenger;
	}

	public void setAccompaniedByPassenger(DTOPassenger accompaniedByPassenger) {
		this.accompaniedByPassenger = accompaniedByPassenger;
	}

	public String getOthername() {
		return othername;
	}

	public void setOthername(String othername) {
		this.othername = othername;
	}

	
	
	/**
	 * @return the allMoney
	 */
	public String getAllMoney()
	{
		return allMoney;
	}

	
	/**
	 * @param allMoney the allMoney to set
	 */
	public void setAllMoney(String allMoney)
	{
		this.allMoney = allMoney;
	}

	/**
	 * @return the ticketMoney
	 */
	public String getTicketMoney()
	{
		return ticketMoney;
	}

	
	/**
	 * @param ticketMoney the ticketMoney to set
	 */
	public void setTicketMoney(String ticketMoney)
	{
		this.ticketMoney = ticketMoney;
	}

	
	/**
	 * @return the airportTaxMoney
	 */
	public String getAirportTaxMoney()
	{
		return airportTaxMoney;
	}

	
	/**
	 * @param airportTaxMoney the airportTaxMoney to set
	 */
	public void setAirportTaxMoney(String airportTaxMoney)
	{
		this.airportTaxMoney = airportTaxMoney;
	}

	
	/**
	 * @return the fuelTaxMoney
	 */
	public String getFuelTaxMoney()
	{
		return fuelTaxMoney;
	}

	
	/**
	 * @param fuelTaxMoney the fuelTaxMoney to set
	 */
	public void setFuelTaxMoney(String fuelTaxMoney)
	{
		this.fuelTaxMoney = fuelTaxMoney;
	}

	
	/**
	 * @return the xcdPrintStatus
	 */
	public String getXcdPrintStatus()
	{
		return xcdPrintStatus;
	}

	
	/**
	 * @param xcdPrintStatus the xcdPrintStatus to set
	 */
	public void setXcdPrintStatus(String xcdPrintStatus)
	{
		this.xcdPrintStatus = xcdPrintStatus;
	}


	
	/**
	 * @return the insuranceAmount
	 */
	public String getInsuranceAmount()
	{
		return insuranceAmount;
	}


	
	/**
	 * @param insuranceAmount the insuranceAmount to set
	 */
	public void setInsuranceAmount(String insuranceAmount)
	{
		this.insuranceAmount = insuranceAmount;
	}


	
	/**
	 * @return the firstname
	 */
	public String getFirstname()
	{
		return firstname;
	}


	
	/**
	 * @param firstname the firstname to set
	 */
	public void setFirstname(String firstname)
	{
		this.firstname = firstname;
	}


	
	/**
	 * @return the lastname
	 */
	public String getLastname()
	{
		return lastname;
	}


	
	/**
	 * @param lastname the lastname to set
	 */
	public void setLastname(String lastname)
	{
		this.lastname = lastname;
	}


	
	/**
	 * @return the nationality
	 */
	public String getNationality()
	{
		return nationality;
	}


	
	/**
	 * @param nationality the nationality to set
	 */
	public void setNationality(String nationality)
	{
		this.nationality = nationality;
	}


	
	/**
	 * @return the passportno
	 */
	public String getPassportno()
	{
		return passportno;
	}


	
	/**
	 * @param passportno the passportno to set
	 */
	public void setPassportno(String passportno)
	{
		this.passportno = passportno;
	}





	
	
	/**
	 * @return the bornDate
	 */
	public String getBornDate()
	{
		return bornDate;
	}


	
	/**
	 * @param bornDate the bornDate to set
	 */
	public void setBornDate(String bornDate)
	{
		this.bornDate = bornDate;
	}


	
	/**
	 * @return the expiredDate
	 */
	public String getExpiredDate()
	{
		return expiredDate;
	}


	
	/**
	 * @param expiredDate the expiredDate to set
	 */
	public void setExpiredDate(String expiredDate)
	{
		this.expiredDate = expiredDate;
	}


	/**
	 * @return the remark
	 */
	public String getRemark()
	{
		return remark;
	}


	
	/**
	 * @param remark the remark to set
	 */
	public void setRemark(String remark)
	{
		this.remark = remark;
	}





	
	
	/**
	 * @return the issueCountry
	 */
	public String getIssueCountry()
	{
		return issueCountry;
	}


	
	/**
	 * @param issueCountry the issueCountry to set
	 */
	public void setIssueCountry(String issueCountry)
	{
		this.issueCountry = issueCountry;
	}


	/**
	 * @return the depCity
	 */
	public String getDepCity()
	{
		return depCity;
	}


	
	/**
	 * @param depCity the depCity to set
	 */
	public void setDepCity(String depCity)
	{
		this.depCity = depCity;
	}


	
	/**
	 * @return the depProvince
	 */
	public String getDepProvince()
	{
		return depProvince;
	}


	
	/**
	 * @param depProvince the depProvince to set
	 */
	public void setDepProvince(String depProvince)
	{
		this.depProvince = depProvince;
	}


	
	/**
	 * @return the depCountry
	 */
	public String getDepCountry()
	{
		return depCountry;
	}


	
	/**
	 * @param depCountry the depCountry to set
	 */
	public void setDepCountry(String depCountry)
	{
		this.depCountry = depCountry;
	}


	
	/**
	 * @return the depStreet
	 */
	public String getDepStreet()
	{
		return depStreet;
	}


	
	/**
	 * @param depStreet the depStreet to set
	 */
	public void setDepStreet(String depStreet)
	{
		this.depStreet = depStreet;
	}


	
	/**
	 * @return the depPost
	 */
	public String getDepPost()
	{
		return depPost;
	}


	
	/**
	 * @param depPost the depPost to set
	 */
	public void setDepPost(String depPost)
	{
		this.depPost = depPost;
	}


	
	/**
	 * @return the arrCity
	 */
	public String getArrCity()
	{
		return arrCity;
	}


	
	/**
	 * @param arrCity the arrCity to set
	 */
	public void setArrCity(String arrCity)
	{
		this.arrCity = arrCity;
	}


	
	/**
	 * @return the arrProvince
	 */
	public String getArrProvince()
	{
		return arrProvince;
	}


	
	/**
	 * @param arrProvince the arrProvince to set
	 */
	public void setArrProvince(String arrProvince)
	{
		this.arrProvince = arrProvince;
	}


	
	/**
	 * @return the arrCountry
	 */
	public String getArrCountry()
	{
		return arrCountry;
	}


	
	/**
	 * @param arrCountry the arrCountry to set
	 */
	public void setArrCountry(String arrCountry)
	{
		this.arrCountry = arrCountry;
	}


	
	/**
	 * @return the arrPost
	 */
	public String getArrPost()
	{
		return arrPost;
	}


	
	/**
	 * @param arrPost the arrPost to set
	 */
	public void setArrPost(String arrPost)
	{
		this.arrPost = arrPost;
	}


	
	/**
	 * @return the arrStreet
	 */
	public String getArrStreet()
	{
		return arrStreet;
	}


	
	/**
	 * @param arrStreet the arrStreet to set
	 */
	public void setArrStreet(String arrStreet)
	{
		this.arrStreet = arrStreet;
	}


	/**
	 * @return the inuranceNumberAndType
	 */
	public String getInuranceNumberAndType() {
		return inuranceNumberAndType;
	}


	/**
	 * @param inuranceNumberAndType the inuranceNumberAndType to set
	 */
	public void setInuranceNumberAndType(String inuranceNumberAndType) {
		this.inuranceNumberAndType = inuranceNumberAndType;
	}
	

}
